package com.itheima.reggie.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.itheima.reggie.dto.DishDto;
import com.itheima.reggie.pojo.Dish;

import java.util.List;

public interface DishService extends IService<Dish> {

    //扩展方法：保存菜品，菜品口味数据
    void saveDishWithFlavor(DishDto dishDto);

    //扩展方法：分页查询菜品数据，包括分类名称
    Page<DishDto> pageDishDto(Integer page, Integer pageSize, String name);

    //扩展方法：批量删除菜品，以及菜品口味数据，如果有菜品状态为启售，则不做操作
    void deleteByIds(Long[] ids);

    //扩展方法：根据id查询菜品详情信息（包含口味数据）
    DishDto getDishByIdWithFlavor(Long id);

    //扩展方法：修改菜品，菜品口味数据
    void updateDishWithFlavor(DishDto dishDto);

    /**
     * 自定义扩展方法:条件查询菜品信息,包含口味
     *
     * @param categoryId
     * @param name
     * @return
     */
    List<DishDto> listDishDto(Long categoryId, String name);

    /**
     * 根据套餐id查询对应菜品信息
     *
     * @param setmealId
     * @return
     */
    List<DishDto> findById(Long setmealId);

}
